package com.xu.cloud.codegenerator.pojo.mapper;

import com.xu.cloud.codegenerator.pojo.domain.ColumnDO;
import com.xu.cloud.codegenerator.pojo.domain.TableDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.lang.Nullable;

import java.util.List;

/**
 * 数据库接口
 */
public interface BaseGeneratorMapper {
    /**
     * 通过表名模糊查询表结构信息, 或查询当前数据源下所有表结构信息
     *
     * @param tableName 表名, 传了表名模糊查询表信息, 没传表名查询所有表信息
     * @return 表信息集合
     */
    List<TableDO> queryMultipleTables(@Nullable @Param("tableName") String tableName);

    /**
     * 查询单表信息
     */
    TableDO querySingleTable(@Param("tableName") String tableName);

    /**
     * 查询表的字段信息
     */
    List<ColumnDO> queryColumns(@Param("tableName") String tableName);
}
